import java.util.Locale;

/**
 *  String 类
 */

class Person {

}
public class Test {
    public static void main(String[] args) {
        String str1 = "     Yang  di  ke     ";
        System.out.println(str1);
        //删除字符串左右两边的空格
        String ret = str1.trim();
        System.out.println(ret);
    }
    public static void main16(String[] args) {
        String str1 = "abcdefg";
        //返回从指定位置开始截取到字符串最后
        String s = str1.substring(3);
        System.out.println(s);
        //返回 从2位置开始6位置之前一个字符的字符串  [)
        String s1 = str1.substring(2,6);
        System.out.println(s1);
    }
    public static void main15(String[] args) {
        String str1 = "name=zhangsan&agr=10";
        //第一次以&进行拆分
        String[] strs = str1.split("&");
        for (int i = 0; i < strs.length; i++) {
            //第二次以=进行拆分
            String[] strings = strs[i].split("=");
            for (String s: strings ) {
                System.out.println(s);
            }
        }
    }
    public static void main14(String[] args) {
        String str1 = "192&168=01";
        //此时同时用&和|进行拆分
        String[] str2 = str1.split("&|=");
        for (int i = 0; i < str2.length; i++) {
            System.out.println(str2[i]);
        }
    }
    public static void main13(String[] args) {
        String str1 = "192.168.0.1";
        //此时点号拆分需要两个\\转义
        String[] str2 = str1.split("\\.");
        for (int i = 0; i < str2.length; i++) {
            System.out.println(str2[i]);
        }
    }
    public static void main12(String[] args) {
        String str1 = "hello yangdike yangliu ";
        //字符串按空格进行拆分
        String[] str2 = str1.split(" ");
        for (int i = 0; i < str2.length; i++) {
            System.out.println(str2[i]);
        }
        System.out.println("======");
        //按照空格拆分两组
        String[] str3 = str1.split(" ",2);
        for (int i = 0; i < str3.length; i++) {
            System.out.println(str3[i]);
        }

    }
    public static void main11(String[] args) {
        String str1 = "ababcabcdabcde";
        //将老的字符替换成新的字符
        System.out.println(str1.replace('a', 'o'));
        //将老的字符串替换成新的字符串
        System.out.println(str1.replace("ab", "oo"));
        //将所有的老的字符串替换成新的字符串
        System.out.println(str1.replaceAll("abc","999"));
        //将第一个字符串替换成新的字符串
        System.out.println(str1.replaceFirst("abcd","9999"));
    }
    public static void main10(String[] args) {
        //格式化输出
        String str1 = String.format("%d-%d-%d",2022,12,15);
        System.out.println(str1);
    }
    public static void main9(String[] args) {
        String str1 = "abcdefg";
        //将字符串转换为数组
        char[] chars = str1.toCharArray();

        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }

    }
    public static void main8(String[] args) {
        String str1 = "abcd";
        String str2 = "AbCd";
        //将小写字母转为大写
        System.out.println(str1.toUpperCase());
        //将大写字母转为小写
        System.out.println(str2.toLowerCase());
    }
    public static void main7(String[] args) {
        //将整数转换成一个字符串
        String str1 = String.valueOf(123);
        System.out.println(str1);
        //将一个类转换为字符串
        String str2 = String.valueOf(new Person());
        System.out.println(str2);

        System.out.println("=======");
        //将一个字符串转换为int类型
        String str3 = "123";
        System.out.println(Integer.parseInt(str3));
        //将一个字符串转换为double类型
        System.out.println(Double.parseDouble(str3));
    }
    public static void main6(String[] args) {
        String str1 = "ababcabcdabcde";
        //返回第一次出现的字符下标
        System.out.println("返回第一次出现的字符下标:"+str1.indexOf('c'));
        //从指定位置查找第一次出现的字符
        System.out.println("从指定位置查找第一次出现的字符:"+str1.indexOf('c',6));
        //在主串当中 查找 子串
        System.out.println("在主串当中 查找 子串:"+str1.indexOf("abcd"));
        //从指定位置查找子串
        System.out.println("从指定位置查找子串:"+str1.indexOf("abcd",7));

        //从后往前找第一次出现的字符
        System.out.println("从后往前找第一次出现的字符:"+str1.lastIndexOf('a'));
        //从指定位置从后往前找第一次出现的字符
        System.out.println("从指定位置从后往前找第一次出现的字符:"+str1.lastIndexOf('a',8));
        //从后往前查找第一次出现的子串
        System.out.println("从后往前查找第一次出现的子串:"+str1.lastIndexOf("abcd"));
        //从指定位置从后往前查找子串
        System.out.println("从指定位置从后往前查找子串:"+str1.lastIndexOf("abc",7));
    }
    public static void main5(String[] args) {
        String str1 = "hello";
        //返回指定下标的值
        char ch = str1.charAt(1);
        System.out.println(ch);
        //charAt遍历数组
        for (int i = 0; i < str1.length(); i++) {
            System.out.println(str1.charAt(i));
        }
    }
    public static void main4(String[] args) {
        String str1 = new String("Hello");
        String str2 = new String("hello");
        //比较两个字符串的大小  >返回正数  <返回负数   =返回0
        System.out.println(str1.compareTo(str2));
        //忽略大小写进行比较
        System.out.println(str1.compareToIgnoreCase(str2));
    }
    public static void main3(String[] args) {
        String str1 = new String("Hello");
        String str2 = new String("hello");
        //判断两字符串所指的内容是否相同
        System.out.println(str1.equals(str2));
        //忽略大小写进行比较
        System.out.println(str1.equalsIgnoreCase(str2));
    }

    public static void main2(String[] args) {
        String str1 = "hello";
        //计算数字符串数组的长度
        System.out.println(str1.length());

        //计算这个引用所指的对象空不空
        String str2 = "";
        System.out.println(str2.isEmpty());

        //String类的方法可以被字符串调用
        System.out.println("yangdike".length());
    }
    public static void main1(String[] args) {
        //三种赋值结果没有区别
        String str1 = "hello";
        String str2 = new String("hello");
        System.out.println(str1);
        System.out.println(str2);

        char[] values = {'a','b','c','d'};
        String str3 = new String(values);
        System.out.println(str3);
    }
}
